Data reliability is a key requirement of a data storage system. Data reliability using traditional block devices has been well studied and implemented through various data replication technologies such as Redundant Array of Independent Disks (RAID) and erasure coding. RAID spreads (or replicates) data over a set of data storage drives to prevent permanent data loss of a particular drive. RAID largely falls into two categories: a complete mirror image of the data is kept on a second drive, or parity blocks are added to the data to be able to recover failed blocks in a failure. Erasure coding adds a bunch of parity-like blocks using complex algorithms providing robust data protection and recovery that can tolerate high levels of failure. For example, erasure coding can virtualize physical drives create a virtual drive that can be spread over more than on physical drives to achieve speedy recovery. Data replication using RAID may be too expensive for replicating large objects, and erasure coding may waste storage spaces for small objects.
A key-value solid-state drive (KV SSD) is a new type storage that has different interfaces and semantics compared to conventional block devices such as hard disk drives (HDD) and solid-state drives (SSD). A KV SSD can directly store data values of key-value pairs. Data values stored in a KV SSD may get huge or small depending on an application and the characteristics of the data. There is a need for an efficient data reliability model for efficiently storing objects having different sizes without having performance bottleneck and space limitations.